home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / due6-lu48-en.txt < prev    next >
Encoding:
Text File  |  1999-06-25  |  2.2 KB  |  64 lines

  1.         -----------------------------------
  2.             Duelist's Crackme #6
  3.         Tutorial by Lucifer48, 25 june 1999
  4.         -----------------------------------
  5.  
  6. ===============
  7. 1. INTRODUCTION
  8. ===============
  9.  
  10. In the txt which is with the crackme, you can read this:
  11. "this time i may have created a challenge that is too hard for most of the people, ..."
  12. On the beginning, i was a little afraid, but one hour later i laugh :)
  13. This crackme is in fact deadly easy! I apologize for my lame english.
  14.  
  15. ============
  16. 2. THE ESSAY
  17. ============
  18.  
  19. The proctection consist of two loops:
  20.  
  21. XXXX:0040106B  MOV  EAX,36455544        ;"DUE6" inside out
  22. XXXX:00401070  MOV  ECX,[00402121]      ;read the first four chars
  23. XXXX:00401076  ROL  EAX,06
  24. XXXX:00401079  XOR  AH,AL
  25. XXXX:0040107B  ADD  AL,CL
  26. XXXX:0040107D  DEC  ECX
  27. XXXX:0040107E  JNZ  00401076
  28. XXXX:00401080  CMP  EAX,04071885
  29. XXXX:00401085  JNZ  004010D5            ;(jump)= bad cracker!
  30.  
  31. For the second loop, it is the same thing, just replace 36455544 by 43534952 ("CSIR") and
  32. 04071885 by 4B00D127.
  33.  
  34. The serial must have 8 chars. But how to find the first 4 chars of the serial ??
  35. In fact, you must start from the end of the loop to the beginning. There is no unknow number
  36. to find, you must find how many loops (=ecx) there are, to get the right result (04071885 for the
  37. first loop, and 4B00D127 for the second loop). We must find the value of ECX.
  38. The solution is just to 'turn up' the loop (going inside out). And in this loop, it is possible
  39. to do that.
  40. (example: i want to obtain 85h after a ADD AL,01 instruction; so AL=84h, it isn't more difficult
  41. like that!). And we can find the "inverse" of each "function" (instruction).
  42.  
  43. DEC ECX    ===> INC ECX
  44. ADD AL,CL  ===> SUB AL,CL
  45. XOR AH,AL  ===> XOR AH,AL        ;a XOR b = c <=> c XOR b = a, NEVER FORGET THIS!
  46. ROL EAX,06 ===> ROR EAX,06
  47.  
  48. Look at the source, it is very simple (don't forget to activate the int 3 detection into
  49. soft-ice).
  50.  
  51. For the first loop, we find the following results:
  52.     0DBD76F6
  53.     34647369 <---- hehe :)
  54.     C4E2A92A
  55. For the second loop, we find a single solution:
  56.     72657665
  57.  
  58. Serial/ isd4ever
  59.  
  60. Greetings: ID group, Eternal Bliss (wonderfull site), tC... (for his *big* crackme in delphi ),
  61.            ACiD BuRN, and others i forgot.
  62.  
  63. Lucifer48
  64.